package com.foreknow.elm.dao;

import com.foreknow.elm.po.Orders;

import java.util.List;

/**
 * @author 啊滨
 * @date 2023/2/15 14:03
 */
public interface OrderDao {
    /**
     * 参数：userId、businessId、daId、orderTotal 返回值：int（订单编号）
     * 根据用户编号、商家编号、订单总金额、送货地址编号向订单表中添加一条记录，
     * 并获取自动生成的订单编号，
     * 然后根据用户编号、商家编号从购物车表中查询所有数据，批量添加到订单明细表中，
     * 然后根据用户编号、商家编号删除购物车表中的数据。
     * @param userId
     * @param businessId
     * @param daId
     * @param orderTotal
     * @return
     * @throws Exception
     */
    public int createOrders(String userId,Integer businessId,Integer daId,Double orderTotal )throws  Exception;

    /**
     * 参数：orderId 返回值：orders对象（包括多对一：商家信息； 一对多：订单明细信息）
     * 功能：根据订单编号查询订单信息，包括所属商家信息，和此订单的所有订单明细信息
     * @param orderId
     * @return
     */
    public Orders getOrdersById(Integer orderId) throws  Exception;

    /**
     * 参数：userId 返回值：orders数组（包括多对一：商家信息； 一对多：订单明细信息）
     * 功能：根据用户编号查询此用户的所有订单信息
     * @param userId
     * @return
     * @throws Exception
     */
    public List<Orders> listOrdersByUserId(String userId )throws  Exception;
}
